#ifndef __REGISTERH__
#define __REGISTERH__

#include "baseactor.h"

class Card;
class Containor;
class Page;
class Component;
template <typename T> class ReactQueue;
// Use Register to replace NEW operator
// Since we need a ReactQueue to Control the order that Drawer works
// Register should add the new object to the queue(it's queue only in destruction stage)
class Register : BaseActor
{
  public:
    Register(ScreenBuffer_t* ptr_BaseBuffer);
    virtual ~Register();
    Card* Card();
    Containor* Containor();
    Page* Page();

  private:
    ReactQueue<Component>* Queue;
};

#endif